This relates generally to graphics processors.
There are times when graphics processors are performing a workload and it is desired to terminate the workload. Existing techniques for terminating graphics processor workloads tend to have a substantial impact on performance. The reason for this is that in order to implement the checks needed to determine whether to abort a workload, reads must be issued from each execution unit. This can result in a relatively large drain on memory bandwidth and can have an adverse impact on power and performance.
WebCL is a new application for graphics processor and multicore central processing unit parallel processing from within a web browser. A typical usage model is that a user opens a web page and the active content on the page is accelerated using the graphics processing unit. However, while the graphics processing unit is busy processing this request, the user may decide to go to a new page. Waiting for the graphics processing unit to complete the work submitted is a waste of limited power and a drain on performance. Therefore, it is desirable to abort the submitted work to the graphics processing unit.
Current graphics processors treat the graphics processing unit as a slave device, meaning that work is submitted to the graphics processing unit by a host driver and the graphics processing unit notifies the host via an interrupt when the job is completed. Generally there is no need in this scenario to abort a job. However, with the advent of WebCL applications, a need arises to support aborting workloads.
More specifically, the current proposals to support aborting workloads require that the graphics processing unit poll a location in memory and when the user modes driver sets a bit at this location, the graphics processing unit exits the kernel. But this adds a read impact performance on all kernels, both aborted and non-aborted kernels. It also impacts the cache utilization and efficiency. All execution unit threads would need to read this one bit resulting in cache serialization. Also the driver has to manage its resource resulting in extra bookkeeping.